/*
 * ProductoDAO.java
 *
 * Created on 8 de marzo de 2007, 03:31 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package com.src.computec.radar.services.utilities.dao;

import com.src.computec.radar.base.dao.GenericDAO;
import com.src.computec.radar.base.dao.exception.DAOException;
import com.src.computec.radar.services.base.constantes.ConstantesGenerales;
import com.src.computec.radar.services.utilities.dto.ClienteDto;
import com.src.computec.radar.services.utilities.dto.ProductoDto;
import com.src.computec.radar.services.utilities.dto.SubProductoDto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author aocampo
 */
public class SubProductoDAO extends GenericDAO implements BaseSubProductoDAO {
    
    /** Creates a new instance of ProductoDAO */
    public SubProductoDAO() {
    }
    
    public List getSubProductos(ClienteDto cliDto,ProductoDto prdDto) throws DAOException {
        List listSubProductos = new ArrayList();
        Connection con = null;
        PreparedStatement statement = null;
        ResultSet rs = null;
        try {
            con = getConnectionDB2();
            statement = con.prepareStatement("SELECT CODIGO_PRODUCTO,CODIGO_SUBPRODUCTO,CODIGO_CLIENTE,DESCRIPCION_SUBPRODUCTO,ESTADO FROM "+ConstantesGenerales.getInstance().SCHEMA+".SUBPRODUCTO WHERE CODIGO_CLIENTE="+cliDto.getCodigoCliente()+" AND CODIGO_PRODUCTO="+prdDto.getCodigoProducto()+" AND ESTADO='A'");
            int indice = 0;

            rs = statement.executeQuery();
            while (rs.next()) {
                indice = 0;
		
                SubProductoDto subProductoDto = new SubProductoDto();
		subProductoDto.setCodigoProducto(rs.getString(++indice));
		subProductoDto.setCodigoSubProducto(rs.getString(++indice));		
                subProductoDto.setCodigoCliente(rs.getString(++indice));                
                subProductoDto.setDescripcionSubProducto(rs.getString(++indice));
		subProductoDto.setEstado(rs.getString(++indice));
                listSubProductos.add(subProductoDto);
            }
        } 
        catch (SQLException e) {
            throw new DAOException("SubProductoDAO:getSubProductos: " + e.toString(), e);
        }
        finally {
            closeConnection(con, statement, rs);
        }
        return listSubProductos;
    }
}